[小ネタ]KMSカスタマーキーのエイリアス名を変更する方法
はじめに
こんにちは。大阪オフィスの林です。
記事を書いてる本日2020年1月19日は『い(1)い(1)く(9)うき【良い空気】』で『空気清浄機の日』だそうです(。 ・ω・))フムフム
ん?11月9日は?と思って少し調べたら『い(1)い(1)く(9)うき【良い空気】』で『換気の日』だそうです(*゚ェ゚))フムフム
みなさま、キレイな空気に入れ替えて体調管理にお気を付けください!
雑談はここまでにしておいて本題ですが、タイトルの通りKMSカスタマーキーのエイリアス名を変更する方法をまとめてみました!
なぜこの記事を書いているか?
CloudFormationでKMSのカスタマーキーを作るため、事前にどんなパラメータがあるのか検証がてらマネージメントコンソールから本番環境と同じ名前を使ってKMSのカスタマーキーを作っていました。
検証が終わったので作成したカスタマーキーを削除しようとしたところ、KMSでは安全上の理由からユーザーが設定した削除保留期間(7〜30日間)を経過してからでないと、カスタマーキーは削除されないというサービスの仕様・制約があり、即座にカスタマーキーを削除出来ないということが分かりました(完全に勉強不足。。。(´・_・`))
この時点で感じたこと
『あれ?これって最低7日間は同じ名前でKMSのカスタマーキー作れないのでは?』
もちろんですが削除保留期間を設定し「削除保留中」の状態にしたところで同じ名前でカスタマーキーを作成することは出来ません。
今回、CloudFormationを使って作成の検証をおこないたかったため、何としてもGUIで手動で作成してしまった本番環境と同じ名前のKMSカスタマーキーを消したかったのです。
『そうだ!!エイリアス名を変えてみよう!』
と思い、エイリアス名を変えようとしたのですが、マネージメントコンソールではエイリアス名を変えれる所がありません(見つけられません)でした\(゚ロ゚;)三(;゚ロ゚)/
で、なぜこの記事を書いているか?
という事で直ぐに同じ名前でKMSカスタマーキーを作り直せないかやり方を調べたのでまとめておきたい思い書かせて頂いています。
やりかた
たどり着いたのがAWS CLIでした。 色々調べましたが削除保留期間(7〜30日間)を待たずにKMSカスタマーキーを削除するということは出来ないと判断したため、既存のKSMカスタマーキーのエイリアス名を変更する方法をまとめていきたいと思います。
注意
KMSカスタマーキーの変更や削除は慎重におこなってください。使用中のKMSカスタマーキーが使用できなくなると、最悪の場合データを復号できなくなります。
やってみた
大きな流れ
KMSカスタマーキーのエイリアスの確認
まずCLIでエイリアスの一覧を取得します。
aws kms list-keys
"Aliases": [ (他のエイリアスは省略) { "AliasArn": "arn:aws:kms:ap-northeast-1:123456789012:alias/kms-test-key", #今回変更したいKMSカスタマーキーのエイリアス "AliasName": "alias/kms-test-key", "TargetKeyId": "95ca144f-f89a-xxxx-xxxx-xxxxxxxxxxxx" }, ]
対象のKMSカスタマーキーのエイリアスがあることを確認します。
kms-test-key
は設定済みのエイリアス名です。AliasName
は以降の手順で使用するのでコピーしておいてください。TargetKeyId
は次の手順でKeyArn
との紐づけを確認する際に参照します。
KMSカスタマーキーのKeyArnの確認
次にKMSカスタマーキーのKeyArnを確認します。
aws kms list-aliases
"Keys": [ (他のエイリアスは省略) { "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/95ca144f-f89a-xxxx-xxxx-xxxxxxxxxxxx", "KeyId": "95ca144f-f89a-xxxx-xxxx-xxxxxxxxxxxx" }, ]
前述で確認したTargetKeyId
に紐づくKeyArn
は以降の手順で使用するのでコピーしておいてください。
エイリアス名を削除
--alias-name
に前述で確認したAliasName
の値kms-test-key
を記載します。
aws kms delete-alias --alias-name alias/kms-test-key
戻り値は何もありません。
このコマンドではキーそのものが削除保留状態になるわけではなく、エイリアス名が削除される(ブランク)になります。 マネージメントコンソールで状態を見てみると。エイリアスがブランクになっていることが分かります。
新しく別のエイリアス名を付与
最後に、別のエイリアス名を付与します。今回は--alias-name
に変更後のエイリアス名delete-kms-test-key
を指定します。--target-key-id
にはKMSカスタマーキーのKeyArnの確認時に控えたKeyArn
を記載します。
aws kms create-alias --alias-name alias/delete-kms-test-key --target-key-id arn:aws:kms:ap-northeast-1:123456789012:key/95ca144f-f89a-xxxx-xxxx-xxxxxxxxxxxx
戻り値は何もありません。
マネージメントコンソールで状態を見てみると。ブランクだったエイリアスにdelete-kms-test-key
が再設定されていることが分かります。
これで設定してしまっていたもともとの名前でKMSカスタマーキーを作ることが出来ますv( ̄∇ ̄)
まとめ
GUI(マネージメントコンソール)で出来ること出来ないこと、CLIで出来ること出来ないことは勿論それぞれあります。普段GUIで操作することが多いので、GUIで出来ない操作や設定をCLIを使って実現できないか?といった視点で環境を触ると知識も広がってやれることの幅も広がっていくのではないかと改めて感じた今日この頃でした!
以上、大阪オフィスの林がお送りしました!